package utilityIA;
import java.util.Vector;


/** Classe regroupant des methodes utilitaires.
 * 
 * @author Baptiste Chardon, Thibault Gateau
 *
 */
public class Utile {
	
	/** Minimum de deux nombres double.
	 * 
	 * @param a Le premier nombre.
	 * @param b Le second nombre.
	 * @return Le minimum entre a et b.
	 */
	public static double min(double a, double b){
		return a<b?a:b;
	}
	
	/** Minimum de quatre nombres double.
	 * 
	 * @param a Le premier nombre.
	 * @param b Le second nombre.
	 * @param c Le troisieme nombre.
	 * @param d Le quatrieme nombre.
	 * @return  Le minimum entre a, b, c, et d.
	 */
	public static double min(double a, double b, double c, double d){
		return min(min(a,b),min(c,d));
	}
	
	/** Maximum de deux nombres double.
	 * 
	 * @param a Le premier nombre.
	 * @param b Le second nombre.
	 * @return Le maximum entre a et b.
	 */
	public static double max(double a, double b){
		return a<b?b:a;
	}
        
        
        public static int max(int r1, int r2, int r3){
            return r1<r2?(r2<r3?r3:r2):(r1<r3?r3:r1);
        }
	
	/** Maximum de quatre nombres double.
	 * 
	 * @param a Le premier nombre.
	 * @param b Le second nombre.
	 * @param c Le troisieme nombre.
	 * @param d Le quatrieme nombre.
	 * @return  Le maximum entre a, b, c, et d.
	 */
	public static double max(double a, double b, double c, double d){
		return max(max(a,b),max(c,d));
	}

    /** Fonction permettant de construire un Vector a partir d'un array.
     * L'ordre des elements est inchange.
     * 
     * @param a Le tableau a convertir.
     * @return Le Vector ainsi construit.
     */
	public static Vector<Double> arrayToVector(double[] a){
		Vector<Double> res = new Vector<Double>();			
		for (int i=0;i< a.length;i++){
			res.add(a[i]);
		}
		return res;
			
	}
        
        public static Vector<Double> inversion(Vector<Double> vect){
            	Vector<Double> res = new Vector<Double>();
                int i = vect.size()-1;
		while (i >= 0) {
			res.add(vect.elementAt(i));
                        i--;
		}
            return res;
        }
        
	


}
